class GameAgent
{
public:
    GameAgent(Game* game) :
        _game( game ) {};

    virtual const Game* getGame() { return _game; };
    virtual void        takeStep() = 0;
    virtual double      getTotalComputeTime() { return 0; }

protected:
    Game* _game;
};